﻿#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//转义字符

//int main()
//{
//	printf("abc\n");// \n换行
//
//	return 0;
//}

//int main()
//{
//	printf("abc\0def");// \0结束
//
//	return 0;
//}

//  \?     在书写连续多个问号时使用，防止他们被解析成三字母词            知道
//  \'     用于表示字符常量'                                          知道
//  \"     用于表示一个字符串内部的双引号"                             知道
//  \\     用于表示一个反斜杠，防止它被解释为一个转义序列符              知道
//  \a     警告字符，蜂鸣
//  \b     退格符
//  \f     进纸符
//  \n     换行                                                      知道      
//  \r     回车                                                      知道
//  \t     水平制表符
//  \v     垂直制表符
//  \ddd   d d d表示1~3个八进制的数字。 如： \130 表示字符X             知道
//  \xdd   d d表示2个十六进制数字。 如： \x30 表示字符0                 知道

//三字母词
//??) --> ]
//??( --> [

//
//%d - 打印整型
//%c - 打印字符
//%s - 打印字符串
//%f - 打印float类型的数据
//%lf - 打印double类型的数据
//%zu - 打印sizeof的返回值
//

//int main()
//{
//	//printf("%s\n", "(are you ok??)");
//	////(are you ok]   有可能
//	//printf("%s\n", "(are you ok\?\?)");
//	////(are you ok??)  一定
//
//
//	//printf("%c\n", '\'');
//	
//	//printf("abcdef\n");
//	//printf("\"");
//	
//	//printf("%s\n", "abcdef");
//
//	//printf("abcd\0ef");
//	//printf("abcd\\0ef");
//
//	//printf("c:\\test\\test.c");
//
//	//printf("\a");//电脑响一下
//
//	//printf("abc\ndef");
//
//
//	return 0;
//}


//   \ddd,\xdd

//int main()
//{
//	//printf("%c\n", '\130');    //  \ddd ,	表示1~3个八进制的数字。输出对应的ASCII码值
//	//printf("%c\n", '\x30');    //  \xdd ,	表示2个十六进制的数字。输出对应的ASCII码值
//	//
//	//printf("%d\n", strlen("qwert"));//5
//	//printf("%d\n", strlen("qwe rt"));//6
//
//	//printf("%d\n", strlen("c:\test\628\test.c"));//14
//
//	return 0;
//}


//注释
//1. 代码中有不需要的代码可以直接删除，也可以注释掉
//2. 代码中有些代码比较难懂，可以加一下注释文字



/*  C语言的注释风格    缺陷：不能嵌套注释
int main()
{

	//int a = 10;
	
	int a = 10;
	int b = 20;
	
	
	//创建指针变量p，并赋值为NULL
	int* p = NULL;


	return 0;
}
*/


//int main()
//{
//	//int a = 10;
//	//C++的注释风格
//
//	return 0;
//}

//1.注释可以梳理思路
//2.对复杂的代码进行解释
//3.写代码的时候写注释，是帮助自己，也是帮助别人

//int main()
//{
//	//接收输入
//	
//	//处理数据
//	
//	//输出
//	return 0;
//}


//选择语句

//int main()
//{
//	int coding = 0;
//	printf("你会去敲代码吗？（选择1 or 0）:>");
//	scanf("%d", &coding);
//	if (coding == 1)
//	{
//		printf("坚持，你会有好offer\n");
//	}
//	else
//	{
//		printf("放弃，回家卖红薯\n");
//	}
//	return 0;
//}


//int main()
//{
//	int input = 0;
//	printf("加入比特\n");
//	printf("要好好学习吗？(1/0)\n");
//	scanf("%d", &input);
//	if (input == 1)
//	{
//		printf("好offer\n");
//	}
//	else
//	{
//		printf("卖红薯\n");
//	}
//
//	return 0;
//}

//C语言实现选择：
//if else
//switch


//循环语句
//while语句-讲解
//for语句（后期讲）
//do ... while语句（后期讲)



//while循环的实例

//int main()
//{
//	printf("加入比特\n");
//	int line = 0;
//	while (line <= 20000)
//	{
//		line++;
//		printf("我要继续努力敲代码\n");
//	}
//	if (line > 20000)
//		printf("好offer\n");
//	return 0;
//}


//int main()
//{
//	int line = 0;
//	printf("加入比特\n");
//
//	while (line<20000)
//	{
//		printf("写代码:%d\n",line);
//		line++;
//	}
//	if (line >= 20000)
//	{
//		printf("好offer\n");
//	}
//	else
//	{
//		printf("继续加油\n");
//	}
//
//	return 0;
//}

//C语言是【结构化】的程序设计语言
// - 顺序结构
// - 选择结构
// - 循环结构



//函数

//求两个任意整数和

//int Add(int x, int y)
//{
//	int z = 0;
//	z = x + y;
//	return z;
//}
//int Add(int x, int y)
//{
//	return x + y;
//}
//int main()
//{
//	int n1 = 0;
//	int n2 = 0;
//	//输入
//	scanf("%d %d", &n1, &n2);
//	//求和
//	int sum = Add(n1, n2);
//	//打印
//	printf("%d\n", sum);
//
//	return 0;
//}


//数组


int main()
{
	//int a = 10;
	//int b = 11;
	//int c = 12;
	////0~9
	//int d = 0;
	//int e = 1;
	////....

	//数组
	int arr[10] = { 10,11,12,13,14,15,16,17,18,19 };
	//               0  1  2  3  4  5  6  7  8  9
	//数组的下标
	//数组的每个元素都有一个下标，下标是从0开始的。数组可以通过下标来访问的。
	//printf("%d\n", arr[8]);
	int i = 0;
	while (i < 10)
	{
		printf("%d ", arr[i]);
		i = i + 1;
	}


	return 0;
}

//数组的使用

//int main()
//{
//	int i = 0;
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	for (i = 0; i < 10; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	printf("\n");
//	return 0;
//}

//作业

//小飞机

//int main()
//{
//	printf("     **\n");
//	printf("     **\n");
//	printf("************\n");
//	printf("************\n");
//	printf("    *  *    \n");
//	printf("    *  *    \n");
//
//	return 0;
//}

//输出学生信息

//int main()
//{
//	printf("Name    Age    Gender\n");
//	printf("---------------------\n");
//	printf("Jack    18     man\n");
//
//	return 0;
//}

//发布信息

//int main()
//{
//	printf("I lost my cellphone!\n");
//
//	return 0;
//}

//计算表达式的值

//int main()
//{
//	int a = 40;
//	int c = 212;
//	int r = (-8 + 22) * a - 10 + c / 2;
//	printf("%d\n", r);
//
//	return 0;
//}

//
//0 - 数字0
//'0' - 字符0 - ASCII码值是48
//'\0' - 字符 - ASCII码值是0
//EOF - end of file 文件的结束标志  值是-1
//
//int main()
//{
//	int arr[10];//10个元素
//	int arr2[] = { 1,2,3 };//3个元素
//
//	return 0;
//}


#include <string.h>
//int main()
//{
//	char arr[4] = { 'b','i','t' };
//	//不完全初始化，剩余部分默认初始化为0
//	char arr2[3] = { 'b','i','t' };
//	//[ b i t ] [     ?      ]
//	printf("%d\n", strlen(arr2));//随机值
//
//	return 0;
//}

//int main()
//{
//	//int arr[10] = { 1 };
//	int n = 10;
//	int arr[n] = { 0 };//err
//	//C99标准之前，数组的大小都是用常量或者常量表达式来指定
//	int arr2[10] = { 0 };//OK
//	int arr3[4 + 6] = { 1,2,3,4 };//OK
//
//	//C99标准之后，支持了变长数组，这个时候允许数组的大小是变量，但是这种指定方式的数组是不能初始化的
//	int m = 100;
//	int arr4[m];
//
//	return 0;
//}

//VS对C99中的一些语法支持不是很好，不支持变长数组


//写一个函数求两个数的较大值

//int MAX(int x, int y)
//{
//	if (x > y)
//		return x;
//	else
//		return y;
//}
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	//求两个整数的较大值
//	int r = MAX(a, b);
//	printf("%d\n", r);
//
//	return 0;
//}

//计算y的值
//已知一个函数y=f(x),当x<0时，y=1；当x=0时，y=0；当x>0时，y=-1

//int main()
//{
//	//输入
//	int x = 0;
//	int y = 0;
//	scanf("%d", &x);
//	//计算
//	if (x > 0)
//		y = -1;
//	else if (x == 0)
//		y = 0;
//	else
//		y = 1;
//	//输出
//	printf("%d\n", y);
//
//	return 0;
//}
